package com.esaheki.flashcards.classes;
import java.util.ArrayList;

/**
 * Category é a classe que mantém um registro de categorias de testes que agrupam cartas.
 * Um objeto dessa classe encapsula todas as informações pertinentes a categoria.
 * Essas informações são:
 * <ul>
 * <li>O nome da categoria
 * <li>O aproveitamento médio dentro da categoria
 * <li>As cartas da categoria
 * </ul>
 * <p>
 * 
 * @author      Elton Saheki Horikoshi <esaheki@gmail.com>
 */
public class Category {
	
	/** Id da categoria */
	private int id;
	/** Nome da categoria */
	private String name;
	/** Aproveitamento medio da categoria */
	private double averageScore;
	/** Registro de cartas da categoria */
	ArrayList<Card> cards = new ArrayList<Card>();
	
	/**
	 * Registra a id da categoria.
	 * @param id       id a ser registrado
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**
	 * Retorna a id da categoria.
	 */
	public int getId() {
		return id;
	}

	/**
	 * Registra o nome da categoria.
	 * @param name       o nome a ser registrado
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * Retorna o nome da categoria.
	 */
	public String getName() {
		return name;
	}
	
	/**
	 * Registra o aproveitamento medio da categoria.
	 */
	public void setAverageScore(double score) {
		this.averageScore = score;
	}

	/**
	 * Retorna o aproveitamento medio da categoria.
	 */
	public double getAverageScore() {
		return averageScore;
	}
	
	public String toString() {
		return this.getName();
	}

}
